<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>箭头函数</h1>
    <p>ES6允许使用箭头函数</p>
    <ul>
        <li>箭头函数语法怪异，但是写法简单。</li>
        <li>箭头函数本身没有this指针，是沿用上下文的this指针。</li>
    </ul>
    <h2>箭头函数简写</h2>
    <ul>
        <li>箭头函数的形式参数列表，如果只有一个参数，那么可以省略()</li>
        <li>箭头函数，如果方法体只有一行代码，可以省略{}，并且自动将结果返回</li>
    </ul>
    <script>
        let sum = function(a,b) {
            console.log(a + b);
        }

        function sum2(a,b) {
            console.log(a + b);
        }

        let a = () => {
            console.log("我是箭头函数!");
        }

        let sum3 = (a,b) => {
            console.log(a + b);
        }


        a();
        sum3(1,2);

        // 箭头函数的形式参数列表，如果只有一个参数，那么可以省略()
        let sayHello = name => {
            console.log("Hello",name)
        }
        sayHello("奉先");

        // 箭头函数，如果方法体只有一行代码，可以省略{}，并且自动将结果返回
        let sum4 = (a,b) => a + b;
        console.log(sum4(5,5));

        // 定义一个函数，判断参数是不是偶数
        let isOdd = a => a % 2 == 0;
        let sumOdd = n => {
            let sum = 0;
            for (let i = 1;i <= n;i ++) {
                if (isOdd(i)) {
                    sum += i;
                }
            }
            return sum;
        }

        console.log(sumOdd(100));

        // 箭头函数搭配setTimeout函数使用
        setTimeout(()=> console.log(1000),1000);
    </script>
</body>
</html>